<

macOS アプリをビルドしてリリースする

このガイドでは、リリースの段階的なチュートリアルを提供します。 Flutter アプリをアプリストア。

予選

アプリのリリースプロセスを開始する前に、 それが満たされていることを確認してください りんごアプリレビューガイドライン。

アプリを App Store に公開するには、 最初に登録する必要がありますApple 開発者プログラム。 さまざまな詳細について読むことができます Appleのメンバーシップオプションメンバーシップの選択ガイド。

App Store Connect にアプリを登録する

アプリのライフサイクルを管理しますApp Store コネクト(以前の iTunes Connect)。 アプリの名前と説明を定義し、スクリーンショットを追加します。 価格を設定し、App Store と TestFlight へのリリースを管理します。

アプリの登録には 2 つの手順が必要です。 バンドル ID と、App Store Connect でのアプリケーション レコードの作成。

App Store Connect の詳細な概要については、以下を参照してください。App Store コネクトガイド。

バンドルIDを登録する

すべての macOS アプリケーションはバンドル ID に関連付けられています。 Apple に登録された一意の識別子。 アプリのバンドル ID を登録するには、次の手順に従います。

  1. を開きますアプリID開発者アカウントのページ。
  2. クリック+新しいバンドル ID を作成します。
  3. アプリ名を入力し、選択します明示的なアプリIDをクリックし、IDを入力します。
  4. アプリが使用するサービスを選択し、続く
  5. 次のページで内容を確認し、 をクリックします。登録バンドルIDを登録します。

App Store Connectでアプリケーションレコードを作成する

App Store Connect にアプリを登録します。

  1. 開けるApp Store コネクトブラウザで。
  2. App Store Connect ランディング ページで、 をクリックします。私のアプリ
  3. クリック+[マイ アプリ] ページの左上隅にある 次に選択します新しいアプリ
  4. 表示されるフォームにアプリの詳細を入力します。 [プラットフォーム] セクションで、macOS がチェックされていることを確認します。 Flutter は現在 tvOS をサポートしていないため、 そのチェックボックスはオフのままにしておきます。クリック作成
  5. アプリのアプリケーション詳細に移動し、選択しますアプリ情報サイドバーから。
  6. 「一般情報」セクションで、バンドルIDを選択します。 前の手順で登録したものです。

詳しい概要については、 見るアカウントにアプリを追加する。

Xcode プロジェクト設定を確認する

この手順では、最も重要な設定の確認について説明します。 Xcode ワークスペース内。 詳細な手順と説明については、を参照してください。アプリ配布の準備をする。

Xcode でターゲットの設定に移動します。

  1. Xcode で開きますRunner.xcworkspaceあなたのアプリの中でmacosフォルダ。
  2. アプリの設定を表示するには、ランナーXcode のプロジェクト プロジェクトナビゲーター。次に、メイン ビューのサイドバーで、ランナー目標。
  3. を選択全般的タブ。

最も重要な設定を確認します。

の中に身元セクション:

App Category
あなたのアプリが Mac App Store に掲載されるアプリ カテゴリ。これは何もあり得ません。
Bundle Identifier
App Store Connectに登録したアプリID。

の中に導入情報セクション:

Deployment Target
アプリがサポートする macOS の最小バージョン。 Flutter は macOS 10.14 以降をサポートします。

の中に署名と機能セクション:

Automatically manage signing
Xcode がアプリ署名を自動的に管理するかどうか そしてプロビジョニング。これは設定されていますtrueデフォルトでは、 ほとんどのアプリにはこれで十分です。より複雑なシナリオの場合は、 を参照してくださいコード署名ガイド。
Team
登録した Apple Developer に関連付けられたチームを選択します アカウント。必要に応じて選択しますアカウントを追加する…、 次に、この設定を更新します。

全般的プロジェクト設定のタブは次のようになります。 以下:

Xcode Project Settings

アプリ署名の詳細な概要については、を参照してください。署名証明書の作成、エクスポート、削除。

製品識別子の設定は一元化されています のmacos/Runner/Configs/AppInfo.xcconfig。アプリ名に関しては、 設定PRODUCT_NAME、著作権セットの場合PRODUCT_COPYRIGHT、 そして最後に設定しましたPRODUCT_BUNDLE_IDENTIFIERアプリの場合 バンドル識別子。

アプリのバージョン番号を更新する

アプリのデフォルトのバージョン番号は、1.0.0。 更新するには、次の場所に移動します。pubspec.yamlファイル そして、次の行を更新します。

version: 1.0.0+1

バージョン番号はドットで区切られた 3 つの数字です。 そのような1.0.0上の例では、その後にオプションの ビルド番号など1上の例では、+

バージョンとビルド番号は両方とも Flutter でオーバーライドできます。 指定してビルドする--build-name--build-number、 それぞれ。

macOSでは、build-name用途CFBundleShortVersionStringその間build-number用途CFBundleVersion。 iOS のバージョン管理について詳しくは、次の URL を参照してください。コア基盤キーApple 開発者サイトで。

アプリアイコンを追加する

新しい Flutter アプリが作成されると、プレースホルダー アイコン セットが作成されます。 この手順では、これらのプレースホルダー アイコンを アプリのアイコン:

  1. を確認してくださいmacOS アプリのアイコンガイドライン。
  2. Xcode プロジェクト ナビゲーターで、次を選択します。Assets.xcassetsの中にRunnerフォルダ。プレースホルダー アイコンを独自のアプリ アイコンで更新します。
  3. 次を使用してアプリを実行して、アイコンが置き換えられたことを確認します。flutter run -d macos

Xcodeでビルドアーカイブを作成する

この手順では、ビルド アーカイブの作成とアップロードについて説明します。 Xcode を使用してビルドを App Store に接続します。

開発中は、ビルド、デバッグ、テストを行ってきました。 とデバッグ構築します。アプリをユーザーに配布する準備ができたら App Store または TestFlight では、リリース建てる。 この時点で、次のことが考えられます。Dart コードを難読化するリバースエンジニアリングをより困難にするためです。難読化 コードには、ビルド コマンドにいくつかのフラグを追加する必要があります。

Xcode で、アプリのバージョンを設定し、ビルドします。

  1. 開けるRunner.xcworkspaceあなたのアプリの中でmacosフォルダ。これを行うには コマンドラインで、ベースディレクトリから次のコマンドを実行します。 アプリケーションプロジェクト。
    open macos/Runner.xcworkspace
    
  2. 選択するランナーXcode プロジェクト ナビゲーターで、ランナー設定ビューのサイドバーのターゲット。
  3. [ID] セクションで、バージョンユーザー側に向けて 公開したいバージョン番号。
  4. [ID] セクションで、建てる一意の識別子 App Store Connect でこのビルドを追跡するために使用されるビルド番号。 各アップロードには一意のビルド番号が必要です。

最後に、ビルド アーカイブを作成し、App Store Connect にアップロードします。

  1. アプリケーションのリリース アーカイブを作成します。のベースディレクトリから アプリケーション プロジェクトで、以下を実行します。
    flutter build macos
    
  2. Xcodeを開いて選択します製品 > アーカイブ作成されたアーカイブを開くには 前のステップで。
  3. クリックアプリの検証ボタン。問題が報告された場合は、 それらに対処し、別のビルドを作成します。同じものを再利用できます アーカイブをアップロードするまでは、ビルド ID を保持します。
  4. アーカイブが正常に検証されたら、アプリを配布する。ビルドのステータスを追跡できます。 アプリの詳細ページの「アクティビティ」タブApp Store コネクト。

30 分以内に次のことを通知するメールが届きます。 ビルドは検証され、テスターに​​リリースできるようになりました テストフライトで。この時点でリリースするかどうかを選択できます TestFlight で、またはアプリを App Store にリリースしてください。

詳細については、を参照してください。アプリを App Store Connect にアップロードする。

Codemagic CLI ツールを使用してビルド アーカイブを作成する

この手順では、ビルド アーカイブの作成とアップロードについて説明します。 Flutter ビルド コマンドを使用してビルドを App Store Connect に接続する とCodemagic CLI ツールターミナルで実行される Flutter プロジェクト ディレクトリ内。

  1. Codemagic CLI ツールをインストールします。

    pip3 install codemagic-cli-tools
    
  2. を生成する必要がありますApp Store Connect APIキーApp Manager にアクセスして、App Store Connect で操作を自動化します。作る 後続のコマンドをより簡潔にするには、次の環境変数を設定します。 新しいキー: 発行者 ID、キー ID、および API キー ファイル。

    export APP_STORE_CONNECT_ISSUER_ID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
    export APP_STORE_CONNECT_KEY_IDENTIFIER=ABC1234567
    export APP_STORE_CONNECT_PRIVATE_KEY=`cat /path/to/api/key/AuthKey_XXXYYYZZZ.p8`
    
  3. Mac App DistributionとMac Installerをエクスポートまたは作成する必要があります コード署名を実行し、ビルド アーカイブをパッケージ化するための配布証明書。

    既存のものがある場合証明書をエクスポートできます。 証明書ごとに次のコマンドを実行して秘密キーを取得します。

    openssl pkcs12 -in <certificate_name>.p12 -nodes -nocerts | openssl rsa -out cert_key
    

    または、次のコマンドを実行して新しい秘密キーを作成できます。

    ssh-keygen -t rsa -b 2048 -m PEM -f cert_key -q -N ""
    

    後で、CLI ツールで新しい Mac App Distribution を自動的に作成し、 Mac インストーラー配布証明書。同じ秘密キーを次の目的で使用できます。 それぞれの新しい証明書。

  4. App Store Connect からコード署名ファイルを取得します。

    app-store-connect fetch-signing-files YOUR.APP.BUNDLE_ID \
        --platform MAC_OS \
        --type MAC_APP_STORE \
        --certificate-key=@file:/path/to/cert_key \
        --create
    

    どこcert_keyエクスポートされた Mac App Distribution 証明書の秘密キーのいずれかです または、新しい証明書を自動的に生成する新しい秘密キー。

  5. Mac インストーラー配布証明書をお持ちでない場合は、 次のコマンドを実行すると、新しい証明書を作成できます。

    app-store-connect create-certificate \
        --type MAC_INSTALLER_DISTRIBUTION \
        --certificate-key=@file:/path/to/cert_key \
        --save
    

    使用cert_key前に作成した秘密キーの。

  6. Mac インストーラー配布証明書を取得します。

    app-store-connect list-certificates \
        --type MAC_INSTALLER_DISTRIBUTION \
        --certificate-key=@file:/path/to/cert_key \
        --save
    
  7. コード署名に使用する新しい一時キーチェーンを設定します。

    keychain initialize
    
  8. 次に、取得した証明書をキーチェーンに追加します。

    keychain add-certificates
    
  9. 取得したコード署名プロファイルを使用するように Xcode プロジェクト設定を更新します。

    xcode-project use-profiles
    
  10. Flutter の依存関係をインストールします。

    flutter packages pub get
    
  11. CocoaPods の依存関係をインストールします。

    find . -name "Podfile" -execdir pod install \;
    
  12. Flutter macOS プロジェクトをビルドします。

    flutter build macos --release
    
  13. アプリをパッケージ化します。

    APP_NAME=$(find $(pwd) -name "*.app")
    PACKAGE_NAME=$(basename "$APP_NAME" .app).pkg
    xcrun productbuild --component "$APP_NAME" /Applications/ unsigned.pkg
    
    INSTALLER_CERT_NAME=$(keychain list-certificates \
              | jq '[.[]
                | select(.common_name
                | contains("Mac Developer Installer"))
                | .common_name][0]' \
              | xargs)
    xcrun productsign --sign "$INSTALLER_CERT_NAME" unsigned.pkg "$PACKAGE_NAME"
    rm -f unsigned.pkg 
    
  14. パッケージ化されたアプリを App Store Connect に公開します。

    app-store-connect publish \
        --path "$PACKAGE_NAME"
    
  15. 前述したように、ログインキーチェーンを設定することを忘れないでください 認証の問題を回避するためのデフォルトとして マシン上のアプリの場合:

    keychain use-login
    

登録した端末に配信

テストフライトmacOS アプリの配布には使用できません 内部および外部のテスターに​​。見る配布ガイド指定された Mac コンピュータに配布するためのアーカイブを準備します。

アプリを App Store にリリースする

アプリを世界にリリースする準備ができたら、 次の手順に従ってアプリを審査のために送信し、 App Store へのリリース:

  1. 選択する価格と入手可能性アプリのサイドバーから アプリケーション詳細ページApp Store コネクトそして、 必要な情報。
  2. サイドバーからステータスを選択します。これが最初の場合 このアプリのリリース、そのステータスは1.0 提出の準備をする。すべての必須フィールドに入力します。
  3. クリックレビューのために送信する

Apple は、アプリのレビュープロセスが完了すると通知します。 アプリは指示に従ってリリースされます に指定されているバージョンリリースセクション。

詳細については、を参照してください。App Store を通じてアプリを配布する。

トラブルシューティング

のアプリを配布するガイドが提供するのは、 アプリを App Store にリリースするプロセスの詳細な概要。